Systems and methods for printing a document from a mobile communication device

ABSTRACT

The illustrative embodiments described herein provide a non-transitory computer readable medium and a method for printing a document from a mobile communication device. In one embodiment, the method includes receiving a print job sent from the mobile communication device and determining a location of the mobile communication device. The method also includes identifying a printer proximate the mobile communication device and initiating execution of the print job at the identified printer.

CROSS REFERENCE TO RELATED APPLICATIONS

The present patent application is a continuation of patent applicationSer. No. 14/628,428, filed Feb. 23, 2015, issued U.S. Pat. No.9,244,636, issued Jan. 26, 2016, which is a continuation of patentapplication Ser. No. 14/334,338, filed Jul. 17, 2014, issued U.S. Pat.No. 8,964,235, issued Feb. 24, 2015, which is a continuation of patentapplication Ser. No. 12/753,163, filed Apr. 2, 2010, issued U.S. Pat.No. 8,786,875, issued Jul. 22, 2014, which is a non-provisional ofpatent application No. 61/317,741, filed Mar. 26, 2010, entitled Systemand Method for Analysing Data Records Utilizing a Touch ScreenInterface, and provisional patent application No. 61/317,744, filed Mar.26, 2010, entitled Touch Screen Commands, and provisional patentapplication No. 61/317,793, filed Mar. 26, 2010, entitled A Method forTouch Detection in Touch Sensitive Screens, and provisional patentapplication No. 61/317,800, filed Mar. 26, 2010, entitled TouchSensitive Screens Utilizing History and a Preview, and provisionalpatent application No. 61/317,812, filed Mar. 26, 2010, entitledRepetitive Touch Combining Method, and provisional patent applicationNo. 61/317,827 filed Mar. 26, 2010, entitled Touch Screen Accuracy, theentire contents of each of these applications are incorporated byreference herein. The instant patent application is related to commonlyassigned patent application Ser. No. 12/753,167, filed Apr. 2, 2010,entitled Method and Apparatus of Compiling Multimedia Files and RelatedData Retrieval Operations, and patent application Ser. No. 12/753,171,filed Apr. 2, 2010, entitled Method and Apparatus of ProcessingInformation in an Environment With Multiple Devices and LimitedResources, issued U.S. Pat. No. 9,223,529, issued Dec. 29, 2015, andpatent application Ser. No. 12/753,180, filed Apr. 2, 2010, entitledSystems and Methods for Managing the Execution of Print Jobs, issuedU.S. Pat. No. 8,559,036, issued Oct. 15, 2013, the entire contents ofeach of these applications are incorporated by reference herein.

BACKGROUND

1. Field of the Invention

The present invention relates generally to systems and methods forprinting a document. More particularly, the present invention relates tosystems and methods for printing a document from a mobile communicationdevice.

2. Description of the Related Art

Today's society has become highly interconnected as a result of theincreasing prevalence of mobile communication devices. People are nowable to rely on mobile communication devices to perform an increasingnumber of daily tasks, such as talking to others, texting, web browsing,e-mailing, organizing, taking pictures, etc. However, because mobilecommunication devices are not anchored to any particular location, someissues may arise when using mobile communication devices to print adocument. For example, as a user carries his or her mobile communicationdevice from one location to another, the printer that is mostconveniently accessible to the user may also change. The user may beinconvenienced by having to retrieve a printed document at the user'sdefault printer since the user could be far away from his or her home,office, or other customary location. In contrast, the user may desire touse his or her mobile communication device to print the document,according to his or her specifications, at a closer or moreconveniently-located printer.

SUMMARY

The illustrative embodiments described herein are directed to a dataprocessing system and, in particular, to systems and methods forprinting a document from a mobile communication device. In oneembodiment, the method includes receiving a print job sent from themobile communication device and determining a location of the mobilecommunication device. The method also includes identifying a printerproximate the mobile communication device and initiating execution ofthe print job at the identified printer.

In another embodiment, the method includes receiving a print job sentfrom a mobile communication device, accessing a user profile associatedwith the user, and identifying a set of printers compatible with theuser profile. The method also includes identifying a destination printerin the set of printers that is proximate the mobile communication deviceand initiating execution of the print job at the destination printer.

In another embodiment, a printer includes a receiver to receive a printjob initiated by a mobile communication device associated with a user.The print job includes a set of print job parameters, and the set ofprint job parameters includes user identification data. The printer alsoincludes a detector to detect a presence of the mobile communicationdevice, and a printing module to print the document when the presence ofthe mobile communication device is detected.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic, pictorial representation of a network dataprocessing system for printing a document using a mobile communicationdevice according to an illustrative embodiment;

FIG. 2 is a schematic diagram showing an illustrative embodiment of theinteraction between components of a system for printing a document usinga mobile communication device;

FIG. 3 is a schematic, block diagram of a location-based printmanagement system according to an illustrative embodiment;

FIG. 4 is a schematic diagram illustrating an initiation distance and aprint activation distance around a printer according to an illustrativeembodiment;

FIG. 5 is a schematic diagram showing multiple local area networks inwhich the illustrative embodiments may be implemented;

FIG. 6 is a schematic flowchart of a process for printing a documentusing a mobile communication device according to an illustrativeembodiment;

FIG. 7 is a schematic flowchart of a process for printing a documentusing a mobile communication device according to another illustrativeembodiment;

FIG. 8 is a schematic flowchart of a printer process to execute a printjob initiated by a mobile communication device according to anillustrative embodiment; and

FIG. 9 is a schematic, block diagram of a data processing system inwhich the illustrative embodiments may be implemented.

DETAILED DESCRIPTION

Referring to FIGS. 1 and 2, an illustrative embodiment of a network dataprocessing system 100 includes a mobile communication device 102 that isin data communication with a printer server 104 via a base station 106.The mobile communication device 102 is any mobile device capable ofcommunicating with a user or another device. Unless otherwise indicated,as used herein, “or” does not require mutual exclusivity. Non-limitingexamples of the mobile communication device 102 include cellular phones,smart phones, walkie talkies, laptops, netbooks, personal digitalassistants, mini-computers, digital music players, portable gamingdevices, etc. The printer server 104 is in data communication with afirst printer 108, a second printer 110, and a third printer 112,although any number of printers may communicate with the printer server104.

In one embodiment, a user 114 of the mobile communication device 102sends a print job to the printer server 104, which then identifies theprinter that is most proximate the mobile communication device 102. Inthe example of FIG. 1, the most proximate printer that is identified bythe printer server 104 is the third printer 112. The printer server 104may then initiate the print job on the third printer 112, where theuser's 114 desired document is printed and retrieved. Thus, the documentis printed at a location that is convenient, or otherwise desirable, tothe user 114 even as the location of the mobile communication device 102and the user 114 changes.

The interaction between the components of the network data processingsystem 100 is shown according to one illustrative embodiment withreference to both FIGS. 1 and 2. After receiving the print job from themobile communication device 102 via the base station 106 (datacommunication 116), the printer server 104 may request the location ofthe mobile communication device 102 from the base station 106 (datacommunication 118), including any number of servers (not shown) that isassociated with the base station 106 and has functionality that is ableto locate the mobile communication device 102. The printer server 104may request the location of the mobile communication device 102 uponreceiving the print job, or at a later time. The base station 106 thendetermines the location of the mobile communication device 102 (process120). Non-limiting examples of techniques that may be used by the basestation 106 to determine the location of the mobile communication device102 are given in the figures below.

Upon determining the location of the mobile communication device 102,the base station 106, or associated server (not shown), sends the mobilecommunication device location to the printer server 104 (datacommunication 122). Amongst the printers with which the printer server104 is in data communication, the printer server 104 may identify theprinter that is most proximate the mobile communication device 102(process 124). In one embodiment of the process 124, the printer server104 determines a respective distance between the mobile communicationdevice 102 and each of the first printer 108, the second printer 110,and the third printer 112. In particular, the printer server 104determines that the mobile communication device 102 is a first distance126, a second distance 128, and a third distance 130 from the firstprinter 108, the second printer 110, and the third printer 112,respectively. The printer server 104 compares the first distance 126,the second distance 128, and the third distance 130 to determine thatthe third printer 112 is the least distant printer from the mobilecommunication device 102.

Upon identifying the third printer 112 as being most proximate themobile communication device 102, the printer server 104 sends the printjob to the third printer 112 for execution (data communication 132). Inanother embodiment, execution of the print job by the third printer 112is initiated by the printer server 104, and the print job is sent to thethird printer 112 from a source other than the printer server 104, suchas the mobile communication device 102 itself.

Before actually printing the document associated with the print job, theprinter server 104 may initiate an authorization prompt on the mobilecommunication device 102 that requests the user 114 to authorizeprinting of the document at the third printer 112. Thus, the user 114may prevent the third printer 112 from printing the document for anyreason. One non-limiting example of when a user 114 may desire toprevent printing at the third printer 112 is when the third printer 112is not the default printer that is normally designated for printingdocuments for the mobile communication device 102. For example, theprinter server 104 may determine that the user's default printer (e.g.,the first printer 108) is unavailable, and choose to initiate the printjob on a different printer (e.g., the third printer 112). The defaultprinter may be unavailable, for example, if the mobile communicationdevice 102 is out of range from the default printer or a computerassociated therewith. In addition to requesting the user 114 toauthorize print jobs for a printer other than the user's defaultprinter, the user 114 may be requested to authorize printing at theuser's default printer as well.

Depending on whether the third printer 112 successfully executed theprint job, the third printer 112 notifies the printer server 104 whetheror not the document was printed successfully (data communication 134).In response to receiving this notification from the third printer 112,the printer server 104 may then initiate a notification on the mobilecommunication device 102 that notifies the user 114 of the success orfailure of the print job (data communication 136). If the print job wassuccessful, the user 114, or any other person, may retrieve the printeddocument at the third printer 112. Thus, time may be saved andconvenience may be increased by printing the document at the proximatethird printer 112.

The techniques, technologies, or media by which the components of thenetwork data processing system 100 intercommunicate are numerous. Forexample, the printer server 104, the first printer 108, the secondprinter 110, and the third printer 112 may be part of a personal areanetwork (PAN), a local area network (LAN), a campus area network (CAN),a metropolitan area network (MAP), or any other network type. Also, datacommunication media 138, 140, and 142 between the printer server 104 andeach of the first printer 108, the second printer 110, and the thirdprinter 112, respectively, may be any media through which data can becommunicated. For example, the data communication media 138, 140, and142 may be wired or wireless data connections, and may utilize a virtualprivate network (VPN), multi-protocol label switching (MPLS), theInternet, or any other data communication media. In addition, each ofthe data communication media 138, 140, and 142 may be of the same type,or may differ from one another.

The data communication medium 144 between the base station 106 and theprinter server 104 may be of the same or similar type as any of thenon-limiting examples provided for the data communication media 138,140, and 142. The data communication medium 144 may also include anynumber of intervening servers or computers (not shown), which mayfacilitate the communication of data between the base tower 106 and theprinter server 104. Such intervening servers may also assist indetermining the location of the mobile communication device 102 andrelay that location, as well as other information regarding the mobilecommunication device 102 or the user 114, to the printer server 104 forprocessing in accordance with the illustrative embodiments. Wirelesscommunication between the mobile communication device 102 and the basestation 106 may utilize any wireless standard for communicating data,such as CDMA (e.g., cdmaOne or CDMA2000), GSM, 3G, Edge, an over-the-airnetwork, Bluetooth, etc.

In one example, the network data processing system 100 may utilize theInternet, with any combination of the data communication media 138, 140,142, and 144 representing a worldwide collection of networks andgateways that use the Transmission Control Protocol/Internet Protocol(TCP/IP) suite of protocols to communicate with one another. At theheart of the Internet is a backbone of high-speed data communicationlines between major nodes or host computers, consisting of thousands ofcommercial, governmental, educational, and other computer systems thatroute data and messages. FIG. 1 is intended as an example, and not as anarchitectural limitation for the different illustrative embodiments.

Referring now to FIGS. 3 and 4, an illustrative embodiment of alocation-based print management system 246 includes a print manager 248that receives one or more print jobs 250 from the mobile communicationdevice 202, and initiates the print job 250 on a destination printer 212based, at least in part, on a current or future location of the mobilecommunication device 202. Components of FIG. 3 that are analogous tocomponents in FIG. 1 have been shown by indexing the reference numeralsby 100. In the example of FIG. 3, the destination printer 212 is one ofa set of printers 260 from which a print destination may be selected,and is the printer that is identified by the print manager 248 forexecuting the print job 250. The print manager 248 may be implemented bya server, such as the printer server 104 in FIG. 1, which is incommunication with the set of printers 260.

The print job 250 may be created, initiated, or sent by the mobilecommunication device 202 using any application having printfunctionality, such as a word processor, a graphical-relatedapplication, a spreadsheet application, a Web browser, or otherprint-capable application. The print manager 248 may initiate executionof the print job 250 upon receiving the print job 250, or at any othertime thereafter. For example, if the user 214 specifies that the printjob 250 should be executed at a particular date or time in the future,the print manager 248 may initiate the print job 250 at the destinationprinter 212 at the time or date specified by the user 214.

Once the print manager 248 has determined that the print job 250 shouldbe initiated, a device locator 252 determines a location of the mobilecommunication device 202. The device locator 252 may work in conjunctionwith a base station, such as the base station 106 in FIG. 1, or anetwork data processing system to locate the mobile communication device202. The technologies that may be used to locate the mobilecommunication device 202 are numerous, and several examples follow.

In one non-limiting example, a location-based service may be used tolocate the mobile communication device 202, such as cell identification,enhanced cell identification, uplink-time difference of arrival(U-TDOA), time of arrival (TOA), angle of arrival (AOA),enhanced-observed time difference (E-OTD), or assisted GPS.Localization-based systems that may be used to locate the mobilecommunication device 202 may include network based systems, such as cellidentification or triangulation, handset-based systems, or hybridpositioning systems, such as assisted GPS. In the example in which ahandset-based system is used to locate the mobile communication device202, a tracking application 254 may be loaded onto the mobilecommunication device 202. The tracking application 254 may be deployedby an application deployment module 256. One non-limiting example of thetracking application 254 is a GPS module that calculates and sendslocation data, such as the latitude and longitude, for the mobilecommunication device 202 to the print manager 248.

The print manager 248 also includes a printer determination engine 258,which, in one embodiment, identifies a printer at which the print job250 is to be initiated. In addition to identifying the destinationprinter 212 on the basis of proximity to the mobile communication device202, the printer determination engine 258 may also take into account aset of print job parameters 262 associated with the print job 250. Forexample, the printer determination engine 258 may identify the set ofprinters 260 that is capable of performing the print job 250 based onthe print job parameters 262, and then identify the destination printer212 to be the printer in the set of printers 260 that is most proximatethe mobile communication device 202. The set of printers 260 includesone or more printers, which, in the example of FIG. 3, includes thedestination printer 212 and a non-destination printer 264.

The set of print job parameters 262 includes one or more print jobparameters. Examples of the print job parameters 262 that may beassociated with the print job 250 are numerous. One example of a printjob parameter 262 is a file location of the document 266 to be printed.In the case in which the document 266 resides on the mobilecommunication device 202, such as when the document 266 is an attachmentto an e-mail on the mobile communication device 202, the document 266may be sent from the mobile communication device 202 to the printmanager 248 along with the print job 250, or the print job parameters262 may specify the location of the document 266 on the mobilecommunication device 202. The print job parameters 262 may also specifythe file location of the document 266 on the Internet, or a directorythat is local, or otherwise accessible, to a server that receives theprint job 250. The file location of the document 266 may also include aunique identification number such as an IP address. In the case in whichthe document 266 is accessible via the Internet, the print manager 248may search for and find the document 266 on the Internet by initiating aweb search. The print job parameters 262 may also specify the locationof the document 266 on any computer that is in communication with thecomputer on which the print manager 248 is implemented.

Other examples of the print job parameters 262 include settings relatedto how the document 266 is printed, such as the desired color option(e.g., grayscale, black-and-white, color, etc.), the layout of thedocument 266 (e.g., portrait, landscape, etc.), the number of pages tobe printed on each sheet of paper, the number of sides on which to printthe document 266 (e.g., two-sided print, single side print, etc.), andother settings for the document 266. The print job parameters 262 mayalso indicate the printer type, such as a laser printer, a dot matrixprinter, a plotter, etc. When the printer determination engine 258identifies the set of printers 260 that are capable of printing thedocument 266, the printer determination engine 258 may take into accountthe document print options, such as those given above. For example, ifthe print job parameters 262 indicate that the document 266 is to beprinted on a dot matrix printer in black-and-white, the set of printers260 that are identified by the printer determination engine 258 will bedot matrix printers having black-and-white print capability. By way offurther example, if the print job parameters 262 indicate that thedocument 266 is to be printed in color, the printer determination engine258 identifies the set of printers 260 that are capable of colorprinting.

The print job parameters 262 may also include, or otherwise indicate,the urgency of the print job 250 or the expected pickup time. When theprint job parameters 262 indicate that the print job 250 is urgent, theprinter determination engine 258 may identify the set of printers 260that are immediately available to print the document 266. The expectedpickup time may include an amount of time after sending the print job250 that the user 214 would like to retrieve the document 266. Theexpected pickup time may also indicate a future date or time at whichthe user 214 would like the document 266 to be printed. In the case inwhich the print job parameters 262 include an expected pickup time, theprint manager 248 may wait until such expected pickup time to locate themobile communication device 202, identify the destination printer 212,and initiate printing on the destination printer 212. Indicating anexpected pickup time may be useful, for example, when the document 266is subject to multiple revisions or updates, and the user 214 prefers toprint the most recent version of the document 266 at a future time. Inthis case, the print job parameters 262 may also include the filelocation of the document 266 so that the proper document is accessed.The print job parameters 262 may also include user identification datathat identifies the user 214.

The print job parameters 262 may also indicate the location of themobile communication device 202. For example, when the trackingapplication 254 includes a GPS module, the print job parameters 262 mayindicate the coordinates at which the mobile communication device 202 islocated. By way of further example, the network in which thelocation-based print management system 246 is implemented may bepartitioned into zones that correspond to a certain range of distancefrom a predefined point, such as the server on which the print manager248 is implemented, or one or more printers in the network. Based on thezone indicated by the print job parameters 262, the printerdetermination engine 258 may identify the printer (e.g., the destinationprinter 212) that is within, or closest to, that zone. The printerdetermination engine 258 may also ensure that the identified printer iscapable of printing the document 266 based on other print job parameters262.

In one embodiment, after identifying the set of printers 260 that iscapable of executing the print job 250 based on the print job parameters262, the printer determination engine 258 may then determine arespective distance between the mobile communication device 202 and eachof the set of printers 260. The printer determination engine 258 maythen identify the destination printer 212 as being the printer in theset of printers 260 that is least distant from the mobile communicationdevice 202. Upon identifying the destination printer 212 as mostproximate the mobile communication device 202, the print manager 248 mayinitiate execution of the print job 250 on the destination printer 212.

In another illustrative embodiment, the printer determination engine 258may identify the set of printers 260 on which the document 266 may beprinted by accessing a user profile database 268. The user profiledatabase 268 includes a user profile 270 associated with the user 214.The user profile 270 includes data about the user 214. For example, theuser profile 270 may include print preferences of the user 214,passwords to access printing on a particular printer, the maximumdistance the user 214 is willing to travel to retrieve the document 266,user identification data, and other user specific data. As will bedescribed in further detail in FIG. 5, the user profile 270 may alsoinclude user-specific financial information, such as credit card numbersand account information, for when the destination printer 212 is ownedor operated by a vendor of printing services.

The printer determination engine 258 may use either or both of the printjob parameters 262 or the user profile 270 to identify the set ofprinters 260 on which the document 266 could potentially be printed.Amongst the printers in the set of printers 260, the printerdetermination engine 258 may then identify the printer most proximatethe mobile communication device 202, which, in the example of FIG. 3, isthe destination printer 212. In another embodiment, the printerdetermination engine 258 may identify the most proximate printer (e.g.,the destination printer 212) without regard to the print job parameters262 or the user profiles 270.

Once the destination printer 212 is identified by the printerdetermination engine 258, a user authentication module 274 may initiatean authorization prompt on the graphical user interface 272 of themobile communication device 202. The authorization prompt may requirethe user 214 to approve printing of the document 266 on the destinationprinter 212. Upon receiving such approval from the user 214, the printmanager 248 may initiate execution of the print job 250 on thedestination printer 212.

The destination printer 212 includes a receiver 276 for receiving theprint job 250. In one embodiment, the destination printer 212 alsoincludes components that authenticate or detect the presence of themobile communication device 202 prior to printing the document 266. Forexample, the destination printer 212 may include a detector 278 todetect the presence of the mobile communication device 202. Uponreceiving the print job 250, a printing module 280, which may includeprint components such as toner, spools, paper, ink, etc., may print thedocument 266 when the detector 278 detects the presence of the mobilecommunication device 202.

With reference to both FIGS. 3 and 4, in one embodiment, the printingmodule 280 may print the document 266 when the detector 278 detects thatthe mobile communication device 202 is within a print activationdistance 282 from the destination printer 212. The processor 284 mayalso be used to determine when the mobile communication device 202 iswithin the print activation distance 282. By way of example, printingthe document 266 when the mobile communication device 202 is within theprint activation distance 282 helps to ensure that the document 266 isprinted when the user 214 is near the destination printer 212. By way offurther illustration, the mobile communication device 202 may initiateor send the print job 250 to the print manager 248 while the mobilecommunication device 202 is at an initiation distance 286 from thedestination printer 212. After the print manager 248 identifies thedestination printer 212, the mobile communication device 202 may move ator within the print activation distance 282 from the destination printer212, at which point the print job 250 is initiated on the destinationprinter 212. The print activation distance 282 may be specified by theuser 214 or any other source. In one example, the print job parameters262 or the user profile 270 indicates the print activation distance 282.In another example, the destination printer 212 is preset to include theprint activation distance 282.

In another embodiment, the destination printer 212 may also include anauthenticator 288 to determine whether the print job 250 is associatedwith the user 214. In this embodiment, the authenticator 288 comparesuser identification data, which may be indicated by the print jobparameters 262 or the user profile 270, with a mobile communicationdevice that is detected by the detector 278. If the user identificationdata matches that of the detected mobile communication device orassociated user, the print job 250 is authenticated and will be executedby the destination printer 212. Thus, the authenticator 288 help toprevent a user other than the user 214 from initiating the print job 250simply by moving within the print activation distance 282 from thedestination printer 212. Instead, only the user 214 having the mobilecommunication device 202 may activate printing of the document 266 bymoving within the print activation distance 282 from the destinationprinter 212. Authentication may take place using any wireless protocol,such as Bluetooth.

In another embodiment, the user 214 may be authenticated by placing aphone call to a predetermined phone number or destination, such as aninteractive voice response (IVR) system. Upon connection to the IVRsystem or upon transmission of data to the IVR system, the user 214 maybe authenticated and the document 266 may be printed at the destinationprinter 212. Any of the components described for the destination printer212 may be included in any printer in the set of printers 260.

The print manager 248 may also notify the user 214 as to whether theprint job 250 was successfully executed on the destination printer 212.In the case in which the print job 250 was not successfully executed,the print manager 248 may initiate a prompt on the mobile communicationdevice 202 requesting the user 214 to change or loosen his or herprinting preferences or settings, such as those contained in the printjob parameters 262 or the user profile 270. Also, in one embodiment, acopy of the print job 250, the print job parameters 262, or the document266 may be retained on the mobile communication device 202 even afterthe print job 250 is sent to the print manager 248. The print job 250,the print job parameters 262, or the document 266 may be discarded whenexecution of the print job 250 is successful.

Referring to FIG. 5, an illustrative embodiment of a network dataprocessing environment 390 in which the illustrative embodiments may beimplemented includes a first local area network (LAN) 391, a second LAN392, and a third LAN 393. However, any number of LANs may be included inthe network data processing environment 390. A user may initiate a printjob from the mobile communication device 302 within the network dataprocessing environment 390. A server, such as the server 104 in FIG. 1,may then determine a location of the mobile communication device 302 andidentify the LAN that is most proximate the mobile communication device302. The server may also identify the LAN that is available to themobile communication device 302 for printing based on print jobparameters and a user profile. In the example of FIG. 5, the LAN that ismost proximate the mobile communication device 302 is the first LAN 391.Upon identifying the first LAN 391, a server 394 may identify adestination printer within the first LAN 391 on which to execute theprint job sent from the mobile communication device 302. Theidentification of the destination printer on which to execute the printjob may be implemented in accordance with the illustrative embodiments.

The ability of the illustrative embodiments to execute a print jobwithin an environment containing multiple LANs helps to give the user ofthe mobile communication device 302 greater mobility and flexibilitywhen printing a document. For example, the first LAN 391, the second LAN392, and the third LAN 393 may be owned, operated, or associated with anorganization to which the user of the mobile communication device 302 isemployed or otherwise associated. In this case, each of the LANs in thenetwork data processing environment 390 may represent offices orseparate physical locations of the organization. Thus, when the user ofthe mobile communication device 302 travels to any of the offices orphysical locations of the organization, he or she will be able to printat that location using the illustrative embodiments. By way of specificexample, the first LAN 391 may be located at a Los Angeles office of theorganization, and the second LAN 392 may be located at a Dallas officeof the organization. If the user of the mobile communication device 302normally works at the Dallas office, the user will still be able toprint at the Los Angeles office if he or she is there for any reason.Also, if the user initiates a print job at the Dallas office butspecifies that the print job should be executed at a future time, suchas when he or she expects to be in the Los Angeles office, theillustrative embodiments will detect the location of the mobilecommunication device 302 at the time the print job is set to beinitiated, and will therefore identify a printer in the first LAN 391that is proximate the mobile communication device 302. If the documentto be printed is subject to multiple revisions or updates, a filelocation can be specified for the print job so that when the user of themobile communication device 302 needs to pick up the document at the LosAngeles office, the document will be the most recent version and beavailable for immediate use by the user.

Any of the LANs in the network data processing environment 390 may alsorepresent LANs that are owned or operated by a vendor of printingservices, such as FedEx Office, Kinko's, or any other vendor. Since somevendors require an account or payment information, such information maybe stored in the user profile for the user of the mobile communicationdevice 302 for access by the vendor. Account or payment information mayalso be included in the print job parameters associated with the printjob. Thus, in an example in which the first LAN 391 is a vendor, thevendor will access the user's account or payment information so that theprint job may be executed at the first LAN 391. Because some vendorscharge a fee for printing services, the user of the mobile communicationdevice 302 may be given an opportunity to approve or disapproveexecution of the print job at the vendor using a user authenticationmodule, such as the user authentication module 274 in FIG. 3. In otherembodiments, any of the first LAN 391, the second LAN 392, or the thirdLAN 393 may be a personal area network (PAN), a campus area network(CAN), a metropolitan area network (MAN), or any other network.

Referring to FIG. 6, an illustrative embodiment of a process that may beexecuted by the print manager 248 in FIG. 3 includes receiving a printjob sent from a mobile communication device (step 401). The processdetermines a location of the mobile communication device (step 403). Theprocess also identifies a printer proximate the mobile communicationdevice (step 405). The process initiates execution of the print job atthe identify printer (step 407).

The process determines whether the print job was successfully executed(step 409). If the process determines that the print job wassuccessfully executed, the print job receives a print confirmation fromthe printer (step 411). The process then initiates a notification on themobile communication device that the print job was successful (step413). The process then terminates.

Referring back to step 409, if the process determines that the print jobwas not successfully executed, the process initiates a notification onthe mobile communication device that the print job has failed (step415). The process then determines whether to retry executing the printjob (step 417). If the process determines to retry executing the printjob, the process returns to step 403. If the process determines not toretry executing the print job, the process then terminates.

Referring to FIG. 7, another illustrative embodiment of a process thatmay be implemented by the print manager 248 in FIG. 3 includes receivinga print job sent from a mobile communication device (step 501). Theprocess accesses a user profile associated with the user (step 503). Theprocess then determines if a set of printers is available that iscompatible with the user profile and is capable of performing the printjob based on print job parameters (step 505). If the process determinesthat no such set of printers is available, the process determineswhether to retry finding the available printers (step 507). If theprocess determines not to retry finding available printers, the processterminates. If the process determines to retry finding availableprinters, the process then returns to step 505.

Returning to step 505, if the process determines that a set of printersis available that is compatible with the user profile and is capable ofperforming the print job, the process identifies the available set ofprinters (step 509). The process then determines the location of themobile communication device (step 511). The process determines arespective distance between the mobile communication device and each ofthe set of available printers (step 513). The process identifies adestination printer in the set of available printers that is leastdistant from the mobile communication device (step 515).

The process authenticates the user (step 517). The process determineswhether the user is authenticated (step 519). If the process determinesthat the user is authenticated, the process initiates execution of theprint job at the identified destination printer (step 521). The processthen terminates.

Returning to step 519, if the process determines that the user has notbeen authenticated, the process determines whether to retryauthentication (step 523). If the process determines to retryauthentication, the process returns to step 517. If the processdetermines not to retry authentication, the process terminates.

Referring to FIG. 8, an illustrative embodiment of a process that may beimplemented by a printer, such as the destination printer 212 in FIG. 3,includes receiving a print job that has been initiated by a mobilecommunication device (step 601). The process determines whether thepresence of the mobile communication device has been detected (step603). If the process determines that the presence of the mobilecommunication device has not been detected, the process determineswhether the print job is still in the printer queue (step 605). If theprint job is still in the printer queue, the process returns to step603. If the process determines that the print job is no longer in theprinter queue, the process terminates.

Returning to step 603, if the process determines that the presence ofthe mobile communication device has been detected, the processauthenticates the user (step 607). The process prints the document (step609). The process sends a print confirmation (step 611). The processthen terminates.

The flowcharts and block diagrams in the different depicted embodimentsillustrate the architecture, functionality, and operation of somepossible implementations of apparatus, methods and computer programproducts. In this regard, each block in the flowchart or block diagramsmay represent a module, segment, or portion of code, which comprises oneor more executable instructions for implementing the specified functionor functions. In some alternative implementations, the function orfunctions noted in the block may occur out of the order noted in theFigures. For example, in some cases, two blocks shown in succession maybe executed substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved.

With reference now to FIG. 9, a block diagram of a data processingsystem 725 is shown in which illustrative embodiments may beimplemented. In one embodiment, the data processing system 725 is anexample of a printer server, such as the printer server 104 in FIG. 1,in which a print manager, such as the print manager 248 in FIG. 3, maybe implemented. In another embodiment, the data processing system 725 isa printer, such as the destination printer 212 in FIG. 3. In anotherembodiment, the data processing system 725 is an example of a mobilecommunication device, such as a cellular phone, in which a trackingapplication, such as the tracking application 254 in FIG. 3, may beimplemented. Computer-usable program code or instructions implementingthe processes used in the illustrative embodiments may be located on thedata processing system 725. The data processing system 725 includes acommunications fabric 727, which provides communications between aprocessor unit 729, a memory 731, a persistent storage 733, acommunications unit 735, an input/output (I/O) unit 737, and a display739.

The processor unit 729 serves to execute instructions for software thatmay be loaded into the memory 731. The processor unit 729 may be a setof one or more processors or may be a multi-processor core, depending onthe particular implementation. Further, the processor unit 729 may beimplemented using one or more heterogeneous processor systems in which amain processor is present with secondary processors on a single chip. Asanother illustrative example, the processor unit 729 may be a symmetricmulti-processor system containing multiple processors of the same type.

The memory 731, in these examples, may be, for example, a random accessmemory or any other suitable volatile or non-volatile storage device.The persistent storage 733 may take various forms depending on theparticular implementation. For example, the persistent storage 733 maycontain one or more components or devices. For example, the persistentstorage 733 may be a hard drive, a flash memory, a rewritable opticaldisk, a rewritable magnetic tape, or some combination of the above. Themedia used by the persistent storage 733 also may be removable. Forexample, a removable hard drive may be used for the persistent storage733.

The communications unit 735, in these examples, provides forcommunications with other data processing systems or communicationdevices. In these examples, the communications unit 735 may be a networkinterface card. The communications unit 735 may provide communicationsthrough the use of either or both physical and wireless communicationlinks.

The input/output unit 737 allows for the input and output of data withother devices that may be connected to the data processing system 725.For example, the input/output unit 737 may provide a connection for userinput through a keyboard and mouse. Further, the input/output unit 737may send output, such as a print job, to a printer. In the case in whichthe data processing system 725 is a cellular phone, the input/outputunit 737 may also allow devices to be connected to the cellular phone,such as microphones, headsets, and controllers. The display 739 providesa mechanism to display information to a user. In the case in which thedata processing system 725 is a cellular phone, the display 739 may be agraphical user interface on the cellular phone.

Instructions for the operating system and applications or programs arelocated on the persistent storage 733. These instructions may be loadedinto the memory 731 for execution by the processor unit 729. Theprocesses of the different embodiments may be performed by the processorunit 729 using computer-implemented instructions, which may be locatedin a memory, such as the memory 731. These instructions are referred toas program code, computer-usable program code, or computer-readableprogram code that may be read and executed by a processor in theprocessor unit 729. The program code in the different embodiments may beembodied on different physical or tangible computer-readable media, suchas the memory 731 or the persistent storage 733.

Program code 741 is located in a functional form on a computer-readablemedia 743 and may be loaded onto or transferred to the data processingsystem 725 for execution by the processor unit 729. The program code 741and the computer-readable media 743 form computer program product 745 inthese examples. In one embodiment, the computer program product 745 is aprint manager, such as the print manager 248 in FIG. 3. In thisembodiment, the data processing system 725 may be any server, and theprogram code 741 may include computer-usable program code capable ofreceiving a print job sent from the mobile communication device,determining a location of the mobile communication device, identifying aprinter proximate the mobile communication device, and initiatingexecution of the print job at the identified printer.

In another embodiment, the data processing system 725 is a printer, andthe program code 741 loaded thereon may include computer-usable programcode capable of receiving a print job initiated by a mobilecommunication device associated with a user, detecting a presence of themobile communication device, and printing a document associated with theprint job when the presence of the mobile communication device isdetected.

In one example, the computer-readable media 743 may be in a tangibleform, such as, for example, an optical or magnetic disc that is insertedor placed into a drive or other device that is part of the persistentstorage 733 for transfer onto a storage device, such as a hard drivethat is part of the persistent storage 733. In a tangible form, thecomputer-readable media 743 also may take the form of a persistentstorage, such as a hard drive or a flash memory that is connected to thedata processing system 725. The tangible form of the computer-readablemedia 743 is also referred to as computer recordable storage media.

Alternatively, the program code 741 may be transferred to the dataprocessing system 725 from the computer-readable media 743 through acommunication link to the communications unit 735 or through aconnection to the input/output unit 737. The communication link or theconnection may be physical or wireless in the illustrative examples. Thecomputer-readable media 743 also may take the form of non-tangiblemedia, such as communication links or wireless transmissions containingthe program code 741. In the example in which the data processing system725 is a mobile communication device, the program code 741 may be atracking application and be deployed to the mobile communication devicevia CDMA (e.g., cdmaOne or CDMA2000), GSM, 3G, Edge, an Over-the-airnetwork, Bluetooth, or any other wireless transmission medium.

The different components illustrated for the data processing system 725are not meant to provide architectural limitations to the manner inwhich different embodiments may be implemented. The differentillustrative embodiments may be implemented in a data processing systemincluding components in addition to or in place of those illustrated fordata processing system 725. Other components shown in FIG. 9 can bevaried from the illustrative examples shown.

As one example, a storage device in the data processing system 725 isany hardware apparatus that may store data. The memory 731, thepersistent storage 733, and the computer-readable media 743 are examplesof storage devices in a tangible form.

In another example, a bus system may be used to implement thecommunications fabric 727 and may be comprised of one or more buses,such as a system bus or an input/output bus. Of course, the bus systemmay be implemented using any suitable type of architecture that providesfor a transfer of data between different components or devices attachedto the bus system. Additionally, the communications unit 735 may includeone or more devices used to transmit and receive data, such as a modemor a network adapter. Further, a memory may be, for example, the memory731 or a cache such as found in an interface and memory controller hubthat may be present in the communications fabric 727.

The principles of the present invention can take the form of an entirelyhardware embodiment, an entirely software embodiment, or an embodimentcontaining both hardware and software elements. In one embodiment, theinvention is implemented in software, which includes but is not limitedto, firmware, resident software, microcode, and other computer readablecode.

Furthermore, the principles of the present invention can take the formof a computer program product accessible from a computer-usable orcomputer-readable medium providing program code for use by or inconnection with a computer or any instruction execution system. For thepurposes of this description, a computer-usable or computer readablemedium can be any tangible apparatus that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, or device.

The previous detailed description is of a small number of embodimentsfor implementing the invention and is not intended to be limiting inscope. One of skill in this art will immediately envisage the methodsand variations used to implement this invention in other areas thanthose described in detail. For example, instead of being used in anetwork printer environment, the illustrative embodiments may be used toexecute any process on at least one of a set of processors based on alocation of the mobile communication device sending the processing job.The following claims set forth a number of the embodiments of theinvention disclosed with greater particularity.

What is claimed:
 1. A method, comprising: receiving a print job sentfrom a mobile communication device; determining whether the mobilecommunication device is within a print activation distance of anidentified printer, wherein the print activation distance is a maximumdistance between the identified printer and the mobile communicationdevice; when the mobile communication device is not within the printactivation distance, waiting to execute the print job based on anexpected pickup time; when the expected pickup time arrives: locatingthe mobile communication device; identifying the printer proximate themobile communication device; and initiating execution of the print jobon the identified printer when the mobile communication device is withinthe print activation distance of the identified printer; and when themobile communication device is within the print activation distance,initiating execution of the print job at the identified printer, whereinthe printer proximate the mobile communication device is a closestdistance printer to the mobile communication device.
 2. The method ofclaim 1, wherein the identifying of the printer proximate the mobilecommunication device comprises identifying a set of printers capable ofperforming the print job based on a set of print job parametersassociated with the print job.
 3. The method of claim 2, furthercomprising determining a respective distance between the mobilecommunication device and each of the set of printers.
 4. The method ofclaim 1, wherein the initiating execution of the print job at theidentified printer is in response to authenticating a user.
 5. Themethod of claim 1, wherein a user is authenticated via a phoneconnection between the mobile communication device and a phone numberassociated with the identified printer.
 6. The method of claim 2,wherein the set of print job parameters comprises a file location of adocument.
 7. The method of claim 1, further comprising deploying atracking application to the mobile communication device to facilitatedetermining a location of the mobile communication device.
 8. The methodof claim 1, further comprising initiating an authorization prompt on themobile communication device requesting a user to authorize printing adocument at the identified printer.
 9. The method of claim 1, furthercomprising: receiving confirmation that a document is printed at theidentified printer; and responsive to receiving the confirmation,initiating a notification on the mobile communication device that thedocument is printed.
 10. The method of claim 2, further comprisingdetermining whether the identified printer is capable of performing theprint job based on the set of print job parameters.
 11. The method ofclaim 2, wherein the set of print job parameters further comprises auser-defined time to begin printing a document, and wherein thedetermining step, the identifying steps, and the initiating step areinitiated at the user-defined time.
 12. The method of claim 1, whereinthe mobile communication device is associated with a default printer,and the identifying of the printer proximate the mobile communicationdevice is in response to determining that the default printer isunavailable.
 13. The method of claim 2, wherein the set of print jobparameters comprises a maximum distance that a user is willing to travelto retrieve a document associated with the print job.
 14. Anon-transitory computer readable medium comprising instructions that,when executed by a processor, perform: receiving a print job sent from amobile communication device; determining whether the mobilecommunication device is within a print activation distance of anidentified printer, wherein the print activation distance is a maximumdistance between the identified printer and the mobile communicationdevice; when the mobile communication device is not within the printactivation distance, waiting to execute the print job based on anexpected pickup time; when the expected pickup time arrives: locatingthe mobile communication device; identifying the printer proximate themobile communication device; and initiating execution of the print jobon the identified printer when the mobile communication device is withinthe print activation distance of the identified printer; and when themobile communication device is within the print activation distance,initiating execution of the print job at the identified printer, whereinthe printer proximate the mobile communication device is a closestdistance printer to the mobile communication device.
 15. Thenon-transitory computer readable medium of claim 14, wherein theidentifying of the printer proximate the mobile communication devicecomprises identifying a set of printers capable of performing the printjob based on a set of print job parameters associated with the printjob.
 16. The non-transitory computer readable medium of claim 15,further comprising instructions that perform determining a respectivedistance between the mobile communication device and each of the set ofprinters.
 17. The non-transitory computer readable medium of claim 14,wherein the initiating execution of the print job at the identifiedprinter is in response to authenticating a user.
 18. The non-transitorycomputer readable medium of claim 14, wherein a user is authenticatedvia a phone connection between the mobile communication device and aphone number associated with the identified printer.
 19. Thenon-transitory computer readable medium of claim 15, wherein the set ofprint job parameters comprises a file location of a document.
 20. Thenon-transitory computer readable medium of claim 14, further comprisinginstructions that perform deploying a tracking application to the mobilecommunication device to facilitate determining a location of the mobilecommunication device.